define(function (require,exports,module) {
    var myPub = require('./public');
    var oWindow = $(window);
    var resizeTimer = null;
    var oWrap = $('.wrap');                     // 页面内容区域
    var oContain = $('.js_contain');                // 内容部分
    var oGoodsListUl = $('.js_goodsListUl');    // 产品列表分例
    var oLoadingBtn = $('.js_loading');         // 加载中
    var oLoadingNull = $('.js_loadNull');       // 没有更多了
    var oErrPage = $('.js_errPage');            // 没有数据的页面
    var oGoodsListBox = $('.js_goodsList');     // 有商品列表
    var oScrollBox = $('.js_scrollBox');        // 滑动部分
    var lazLoading = new myPub.lazLoadingImg();
    var goodsDateUrl = '/super/goods_list';  // 数据
    var httpImageUrl = myPub.httpImageUrl;
    module.exports = {
        init: function() {
            goodsSetInit.AjaxData(goodsSetInit.start, goodsSetInit.limit);
            goodsSetInit.ScrollPage();
            indexSetInit.Init();

            // 页面尺寸修改
            oWindow.on('resize',function() {
                if (resizeTimer) {
                    clearTimeout(resizeTimer)
                }
                resizeTimer = setTimeout(function(){

                    indexSetInit.Init();
                }, 400);

            });
        }
    };

    var indexSetInit = {
        Init: function () {
            var _this = this;
            oContain.css({
                'box-sizing': 'border-box'
            });
            myPub.JudgeAppHref($('.js_reHome'));
            myPub.JudgeAppHref(oGoodsListUl.find('a'));
        }
    };

    var goodsSetInit = {
        limit: 10,                      // 每次加载多少数据
        getData: [],                    // 数据记录
        pagearr: 1,                     // 当前页码
        pageCout: 0,                    // 页码总数
        prePageSCroll:'',               // 记录当前页面高度
        start:0,                        // 开始数据
        end: 0,                         // 结束数据
        time_Scroll:null,               // 计时器
        bLoadOff: true,                 // 加载开关
        // 商品列表 数据拼接
        goodsListHtml : function (data, fn) {
            var _this = this;
            var shtml = '';
            for (var i=0; i<data.length; i++) {
                shtml +=
                        '<li>' +
                        '   <a class="BoxSelf" _href="' + data[i].goodsSn + '">'+
                        '       <figure>'+
                        '           <img class="js_lazyImg" data-echo="' + httpImageUrl+'/'+ data[i].showImage + '" src="/static_v4/activity/alipayGroup/image/loadImg.jpg">';
                if(data[i].firstGueeImagePath!=null && data[i].firstGueeImagePath!=''){
                    shtml += '<img src="https://img.sfddj.com/miniappImg/public/goodsInfo/'+data[i].firstGueeImagePath+'" alt="" class="quanpei"/>';
                }
                shtml +=
                        '       </figure>'+
                        '       <aside class="priceArea VBox Bflex1">'+
                        '           <div class="Bflex1 priceArea_name">'+
                        '               <h4>' ;
                if(data[i].goodsLabels && data[i].goodsLabels != ""){
                        shtml += '<i class="promotionHotIcon">'+ data[i].goodsLabel +'</i>';
                }
                shtml +=  data[i].name + '</h4>'+
                        '               <p class="smallFont_tip">'+ data[i].title +'</p>'+
                        '           </div>'+
                        '           <div class="priceArea_price">'+
                        '               <p class="HBox priceAreaBox">'+
                        '                   <span class="goodsPrice">￥' + data[i].salePrice + '</span>'+
                        '                   <span class="goodsWeight Bflex1" style="margin-top: 0.1rem;"></span>'+
                        '               </p>'+
                        '           </div>'+
                        '       </aside>'+
                        '   </a>';
                if(data[i].label && data[i].label != ''){
                        shtml += '<p class="horpromotionSale promotionSale">';
                        for(var j=0;j<data[i].labels.length;j++){
                            shtml += '<i>'+data[i].labels[j]+'</i>'
                        }
                        shtml += '</p>';
                }
                    // '    <p class="addCar js_addCar" pid="'+data[i].productId+'"><em class="icon-shopcar_small"></em></p>'+
                shtml += '</li>';
            }

            var oShtml = $(shtml);
            oGoodsListBox.find('.js_goodsListUl').append(oShtml);

            // 高度检测
            if(oWrap.height() < oWindow.height()){
                //console.log('不够高度');
                _this.start = _this.limit*_this.pagearr;
                _this.pagearr++;
                _this.AjaxData(_this.start, _this.limit);
            }
            lazLoading.DestroyLazLoadingImg();
            lazLoading.AddLazLoadingImg(oScrollBox[0]);
            indexSetInit.Init();
            if(fn)fn();
        },

        // 请求数据
        AjaxData: function (start,limit,fn) {
            var _this = this;
            G_JSON_POST(goodsDateUrl,{
                "start":_this.start,
                "limit":_this.limit
            },function (data) {
                //存储数据
                if( data.status == "success") {
                    _this.getData = data.obj;
                    // 对应数据为0 return
                    if(_this.getData.length == 0 && _this.pagearr < 2) {
                        _this.bLoadOff = false;
                        oGoodsListBox.hide();
                        oErrPage.show();
                        return
                    }
                    if( _this.pagearr >= 1) {
                        if(_this.getData.length == 0){
                            oLoadingNull.show();
                            oLoadingBtn.hide();
                            _this.bLoadOff = false;
                            return
                        }
                    }
                    //拼接页面
                    _this.goodsListHtml(_this.getData);
                    oLoadingBtn.show();

                    if(_this.getData.length <  _this.limit) {
                        oLoadingBtn.hide();
                        oLoadingNull.show();
                        _this.bLoadOff = false;
                    }

                    data = null;
                    if(fn)fn();
                }else {
                    _this.bLoadOff = false;
                    oGoodsListBox.hide();
                    oErrPage.show();
                    return false;
                }
            }, function () {
                // start
            }, function () {
                // end
            });
        },

        // 滚动加载
        ScrollPage : function () {
            var _this = this;
            var minScrHeight = 200;
            oScrollBox.on('scroll' , function () {

                var afterScroll = $(this).scrollTop();

                // 滚动距离页面底部200像素，延迟250毫秒加载
                clearTimeout(_this.time_Scroll);

                _this.time_Scroll = setTimeout(function () {

                    _this.prePageSCroll = afterScroll;

                    if(oWrap[0].scrollHeight - afterScroll - oScrollBox.height() < minScrHeight) {

                        // 设置翻页到最后一页 返回
                        if(!_this.bLoadOff) {
                            _this.dataJson = null;
                            return;
                        }

                        // 滚动底部页数增加 起始数据等于上次结束数据  新的结束等于页数*页码数
                        _this.start = _this.limit*_this.pagearr;
                        _this.pagearr++;
                        _this.AjaxData(_this.start, _this.limit);

                    }
                },250)
            })
        }
    }
});